#ifndef __APP_POOL_H_
#define __APP_POOL_H_
#include <mqueue.h>
#include <fcntl.h>
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include "log.h"

#define POOL_MQ_NAME "/GATEWAY_POOL_MQ"
#define MAX_THREAD_NUM 4

typedef struct {
    void *(*task_func)(void *arg);
    void *arg;
} app_pool_task_t;

/**
 * @brief 初始化线程池
 * 1 创建任务队列
 * 2 创建线程数组
 * 
 */
int app_pool_init(void);


/**
 * @brief 向线程池提交任务
 */
int app_pool_submitTask(void *(*func)(void *arg), void *arg);

/**
 * @brief 销毁线程池 
 * 1 逐个停掉线程   
 * 2 销毁队列
 */
void app_pool_destroy(void);

#endif // __APP_POOL_H_
